Arch Git |
Posizione nel menu |
---|
Arch → Utilità → Git |
Ambiente |
Arch |
Avvio veloce |
|
Introdotto nella versione |
- |
Vedere anche |
Nessuno |
Nota: A partire da FreeCAD v0.17, questo strumento è stato rimosso dall'ambiente Arch e ora fa parte dell'ambiente esterno Webtools che è possibile installare tramite il menu Strumenti → Addons Manager
Questo comando consente di eseguire il commit del documento attivo a un repository GIT. GIT è un potente sistema di controllo di versione del file, è in grado di gestire diverse versioni dei file e di conservare la traccia delle modifiche.
Git è uno strumento complesso, prima di utilizzare questo strumento considerare di imparare le sue basi, al fine di evitare operazioni errate che possono causare la perdita di dati. Su internet è disponibile e facile da trovare una abbondante letteratura su GIT.
Note: Per essere in grado di utilizzare questo comando, sul sistema deve essere installato il pacchetto gitpython. Sulla maggior parte delle distribuzioni Linux, gitpython è disponibile nei repository software standard come gitpython o python-git.
Il formato dei file Fcstd di FreeCAD è un formato binario basato su zip, per il quale Git non può produrre differenze corrette. Ciò significa che non si può vedere cosa è cambiato tra una versione e l'altra, e anche che ogni nuova versione memorizzata nel repository Git è una copia completa del file.
Anche se il secondo problema attualmente non ha una soluzione, il primo può essere risolto con un piccolo strumento disponibile nel codice sorgente di FreeCAD, chiamato fcinfo. A Git può essere ordinato di utilizzare l'utilità fcinfo per stampare un rapporto human-friendly (leggibile dalle persone) di un file FCStd, e, quando gli viene chiesto di produrre un differenza tra due file FCStd, produce invece un diff tra i due rapporti fcinfo. Notare che questo è solo un feedback visivo, una copia completa del file rimane ancora memorizzata internamente.
Esempio di una differenza prodotta con fcinfo:
diff --git a/testhouse.FcStd b/testhouse.FcStd
index 08077b6..985b1d8 100644
--- a/testhouse.FcStd
+++ b/testhouse.FcStd
@@ -1,26 +1,25 @@
-Document: /tmp/43un09_testhouse.FcStd (442K)
- SHA1: 67c1985a45d93cba57d5bf44490897aba460100d
+Document: /tmp/zfXoDd_testhouse.FcStd (370K)
+ SHA1: db1cb5fca18af7bfdca849028f40550df4d845cb
Comment : This is a test house to showcase FreeCAD's BIM worflow and IFC export capabilities
Company : uncreated.net
CreatedBy : Yorik van Havre
CreationDate : Fri May 9 12:05:54 2014
FileVersion : 1
Id :
- Label : testhouse
- LastModifiedBy : Yorik van Havre
- LastModifiedDate : 2016-06-28T17:05:57-03:00
+ Label : testhouse2
+ LastModifiedBy : Yorik van Havre
+ LastModifiedDate : Sat Sep 13 20:46:36 2014
+
License : CC-BY 3.0
LicenseURL : http://creativecommons.org/licenses/by/3.0/
- ProgramVersion : 0.17R7800 (Git)
- TipName :
+ ProgramVersion : 0.15R3989 (Git)
Uid : 67e62d8a-6674-4358-92fe-615443be887a
- Objects: (231)
+ Objects: (221)
Annotation : Drawing::FeatureViewAnnotation
Annotation001 : Drawing::FeatureViewAnnotation
Annotation002 : Drawing::FeatureViewAnnotation
Annotation003 : Drawing::FeatureViewAnnotation
- Annotation004 : Drawing::FeatureViewAnnotation
- Annotation005 : Drawing::FeatureViewAnnotation
Array : Part::FeaturePython (9K)
Box : Part::Box (2K)
Building : App::DocumentObjectGroupPython
@@ -110,7 +109,7 @@ Document: /tmp/43un09_testhouse.FcStd (442K)
Floor : App::DocumentObjectGroupPython
Floor001 : App::DocumentObjectGroupPython
Floor002 : App::DocumentObjectGroupPython
- Frame : Part::FeaturePython (89K)
Ogni file di FreeCAD contiene un numero checksum SHA1, che cambia ogni volta che il file viene salvato, anche se non è stato cambiato nessun contenuto. Così fcinfo stampa sempre qualcosa, non importa se il contenuto cambia.
Per abilitare l'utilizzo di fcinfo (solo per Linux e Mac - Da fare: aggiungere le istruzioni per Windows)
*.FCStd diff=fcinfo
*.FCStd diff=fcinfo
.gitconfig
file in your home directory:[diff "fcinfo"]
textconv = /path/to/fcinfo
--gui
) use this approach:[diff "fcinfo"]
textconv = sh -c '/path/to/fcinfo --gui "$0"'XD
Note that if you are working in a collaborative project you may want to include the fcinfo tool in your repository, in that case the path is relative to your Git repository root directory.
If you are working on many projects that need fcinfo tool you can enable it globally for your user.
$HOME/.config/git/attributes
file and add the following line on it:*.FCStd diff=fcinfo
$HOME/.config/git/config
file:
git config --global diff.fcinfo.textconv "/path/to/fcinfo"
.freecad
package can use {{{1}}}
since it's already installed on their system.[diff "fcinfo"]
textconv = /path/to/fcinfo
Note that any configuration made in a repository basis overrides global configurations.